#include <stdio.h>


struct at_publish_instruct
{
    char pub_cmd[128];
    char pub_ok [128];
    char pub_err[128];
};

struct mqtt_publish_operation
{
    struct at_publish_instruct at_publish;

    union {
        char pub_gga[1500];
        char pub_rmc[1500];
    }pub_data;
};

struct mqtt_publish_gga_and_rmc
{
    struct at_publish_instruct at_publish;

    union {
        struct 
        {
            char pub_gga[1500];
            char pub_rmc[1500];
        }gga_or_rmc;

        struct 
        {
            char pub_both[3000];
        }gga_and_rmc;
        
    }pub_data;
};


void main()
{
    printf("sizeof = %ld\n", sizeof(struct mqtt_publish_operation));   // 1884
    printf("sizeof = %ld\n", sizeof(struct mqtt_publish_gga_and_rmc)); // 3384
}
